package com.zhiyou100.api.java8_date;

import java.time.temporal.ChronoField;
import java.time.temporal.ChronoUnit;
import java.time.temporal.Temporal;
import java.time.temporal.TemporalAdjuster;

/**
 * 定义类实现TemporalAdjuster接口，自定义日期修改方案
 */
public class TemporalImpl implements TemporalAdjuster {

    /**
     * 重写adjustInto，自定义日期调整方案
     * @param temporal 要调整的日期
     * @return 调整后的日期
     */
    @Override
    public Temporal adjustInto(Temporal temporal) {
        //获取要调整的日期是周几
        int i = temporal.get(ChronoField.DAY_OF_WEEK);
        //如果是周一到周四  日期+1
        int add = 0;
        if (i >= 1 && i <= 4) {
            add = 1;
        }
        //如果要调整的日期是周五  日期 + 3
        if (i == 5){
            add = 3;
        }
        return temporal.plus(add, ChronoUnit.DAYS);
    }
}
